package com.zsrt.java.day20161227.zzd.demo6;

import java.util.Arrays;
import java.util.Scanner;

public class Name {
	public static void main(String[] args) {
		String[] names=new String[11];
		Scanner sc=new Scanner(System.in);
		while(true){
			System.out.println("请输入选项：1添加2删除3修改4查询5退出");
			int select=sc.nextInt();
			if(select==1){
				System.out.println("请输入要添加的名字...");
				String a=sc.next();
				names=add(names,a);
				System.out.println(Arrays.toString(names));
			}else if(select==2){
				System.out.println("请输入你要删除的名字...");
				String b=sc.next();
				int index=query(names,b);
				System.out.println("姓名"+names[index]+" "+"下标"+index);
				names=delete(names,b);
				System.out.println(Arrays.toString(names));
			}else if(select==3){
				System.out.println("请输入你要修改的名字...");
				String c=sc.next();
				int index=query(names,c);
				System.out.println("姓名"+names[index]+" "+"下标"+index);
				System.out.println("请输入你要修改成的名字...");
				String d=sc.next();
				update(names,c,d);
				System.out.println(Arrays.toString(names));
			}else if(select==4){
				System.out.println("请输入你要查询的名字...");
				String e=sc.next();
				int index=query(names,e);
				System.out.println("姓名"+names[index]+" "+"下标"+index);
			}else if(select==5){
				System.out.println("已经退出...");
			    sc.close();
		        break;
			}
		}

	}
	
	public static String[] delete(String[] names, String deleteData) {
		int len= names.length;
		String[] newNames=new String[len-1];
 		
 		//1：获取 被删除的数 的下标 index

 		int index =query(names,deleteData);
 		
 		//2:以下标为基准 把 原来的数组oldArray 分为2部分  循环原来的数组

 		//2.1 如果在index之前   原样复制到  新的数组中

 		for(int i=0;i<index;i++){
 			String v = names[i];
 			newNames[i]=v;
 		}
 		
 		//2.1 如果在index之后   把index-1 再复制

 		for(int i=index+1;i<len;i++){
 			String v = names[i];
 			newNames[i-1]=v;
 		}
 		return newNames;
 	}
	
	public static String[] update(String[] names,String oldData,String newData) {
		//1 找到元素oldData 所在的下标
				int index=query(names,oldData);
				//2修改下标为3所在的这个元素的值为newData
				names[index]=newData;
				return names;
	}

	public static int query(String[] names, String search) {
		int targetIndex=0;
		//循环整个数组olds
		for(int index=0;index<names.length;index++){
			//获取到一个具体的值
			String value = names[index];
			if(value.equals(search)){
				//找到了
				targetIndex = index;
				//System.out.println(targetIndex);
				break;
			}
		}
		return targetIndex;
	}

	public static String[] add(String[] names, String a) {
		int len=names.length;
		int k=0;
		for(int index=0;index<len;index++){
			if(names[k]==null){
				names[k]=a;
				break;
			}else if(index==len-1){
				System.out.println("超出数组长度...");
			}
			k++;
			}
		return names;
	}

}
